package pers.xiaojun.boot.module.system.service.permission;

import com.baomidou.mybatisplus.extension.service.IService;
import pers.xiaojun.boot.module.system.dao.entity.permission.UserRoleDO;

import java.util.Collection;
import java.util.List;

/**
 * 用户角色服务层
 *
 * @author xiaojun
 * @since 2025-10-10
 */
public interface UserRoleService extends IService<UserRoleDO> {

    /**
     * 创建用户角色
     *
     * @param userId  用户Id
     * @param roleIds 角色列表
     */
    void saveUserRoles(Long userId, Collection<Long> roleIds);

    /**
     * 根据用户Id和角色Id列表删除用户角色
     *
     * @param userId  用户Id
     * @param roleIds 角色Id列表
     */
    void removeUserRoleByUserIdAndRoleIds(Long userId, Collection<Long> roleIds);

    /**
     * 根据用户Id获取用户拥有的角色Id
     *
     * @param userId 用户id
     * @return 角色Id列表
     */
    List<Long> listRoleIdsByUserId(Long userId);

}